The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Often electronic devices may need to be tested after leaving the manufacturer. As an example, a router at a customer site may exhibit problems that need to be tested and monitored for internal state transitions. However, many other types of electronic devices face the need for testing. One technique is for the device to perform limited self-testing. For example, the central processing unit (CPU) of some electronic devices has a set of instructions that can test some problems. However, there are limitations to this technique. For example, the CPU may not be able to address cache directly, and thus may not be able to test a cache problem. Another limitation with this technique is that some problems will not occur when the electronic device goes into its self-test mode. As a particular example, the device might set breakpoints at regular intervals to try and step through to detect when a memory overwrite occurs. However, the memory overwrite might only occur if the device is reading in data at a high rate. Therefore, this self-testing is not able to test the problem.
Another technique for testing an electronic device is to connect a device referred to as an “In-Circuit-Emulator” (ICE) to the electronic device. The ICE interfaces with testing logic inside the electronic device. The testing logic may be substantially compliant with an IEEE 1149.1 boundary-scan specification, such as a Joint Test Action Group (JTAG) interface. A disadvantage with this technique is that the ICE is very expensive. Because multiple ICEs may be needed at the customer site if there are many electronic devices this technique is not scalable. To overcome this limitation, the electronic device can be shipped to the manufacturer to be tested. However, shipping the electronic device is often not practical. Moreover, even if the electronic device were to be shipped to the manufacturer for testing, the problem might never be found because certain problems only occur due to the specific way in which the electronic device is being used at the customer site. For example, a router may exhibit problems due to a specific pattern of data traffic that is difficult if not impossible to re-create at the manufacturer.
Therefore, improvements in testing electronic devices are desired.